package com.elric.mall.common.utils;

import cn.hutool.core.date.DateUtil;
import org.springframework.util.StringUtils;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 实现功能：
 *
 * @author 作者[Yuxuan.he]
 * @version 1.0.00  2021-09-23 16:23
 */
public class DateUtils extends DateUtil {

    public final static String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";

    public final static String FORMAT_YYYYMMDDHH = "yyyyMMddHH";

    private static String[] parsePatterns = {
            "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM-dd HH", "yyyy-MM",
            "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM/dd HH", "yyyy/MM",
            "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM.dd HH", "yyyy.MM",
            "yyyy年MM月dd日", "yyyy年MM月dd日 HH时mm分ss秒", "yyyy年MM月dd日 HH时mm分", "yyyy年MM月dd日 HH时", "yyyy年MM月",
            "yyyy"};

    public static Date getDateForString(String date) {
        Date time = null;
        if (StringUtils.isEmpty(date)) {
            return null;
        }
        try {
            time = parse(date, parsePatterns);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return time;
    }

    /**
     * 将日期时间对象转化为日期数字
     *
     * @param date   日期字符串
     * @param format 格式字符串
     * @return 返回日期数字
     */
    public static String formatDate(Date date, String format) {
        if (date == null) {
            return null;
        }
        return new SimpleDateFormat(format).format(date);
    }
}
